# 计算水仙花数 例如：153 = 1^3 + 5^3 + 3^3

# 第一种方式 （参考多种方法封装）
for num in range(1, 1000 + 1):
    temp = num
    total = 0
    # 几位数
    digits = 0
    # 获取到是几位数
    while temp > 0:
        digits += 1
        # 终止条件
        temp //= 10

    temp = num
    while temp > 0:
        # 循环便利获取 temp 的个位数，并且在下一步中进行累计求和
        digit = temp % 10
        total += digit ** digits
        temp //= 10
    # 最后比较
    if total == num:
        print(num)

# 第二种方式 使用取位法获取个位、十位、百位
num = 100
while num < 1000:
    num1 = int(num / 100)
    num2 = int(num % 100 / 10)
    num3 = int(num % 10)
    if num == num1 ** 3 + num2 ** 3 + num3 ** 3:
        print(num)
    num += 1
